using System;

namespace Pretorianie.Sangraal.Providers.Data
{
    /// <summary>
    /// Interface implemented by all classes that can serve file recognition functionalities.
    /// i.e.: assigning icons based on extension to file or folder, ...
    /// </summary>
    public interface IFolderAttributesDescriptor
    {
        /// <summary>
        /// Provide folder generic description based on name.
        /// </summary>
        ItemAttributes GetFolderAttributes(string name);

        /// <summary>
        /// Provide file generic description based on name or extension.
        /// </summary>
        ItemAttributes GetFileAttributes(string name, string extensionOnly);

        /// <summary>
        /// Format file size into string.
        /// </summary>
        string GetFormattedSize(long size);

        /// <summary>
        /// Format any date (last write time/ creation date/ last access time into string.
        /// </summary>
        string GetFormattedDate(DateTime dt);
    }
}